/**
 * <p>Title: MaterialBatchPropertyDao</p>
 * <p>Description: The Interface of MaterialBatchPropertyDao</p>
 * <p>Copyright: Shanghai Batchsight Pharmaceutical Technologies, Inc. Copyright(c) 2016</p>
 * @author Wan Shuaishuai
 * @version 1.0
 * <pre>Histroy:
 *       2016-11-22  Wan Shuaishuai  Create
 *</pre>
*/
package cn.jhg.account.persist;

import org.bson.Document;
import org.bson.types.ObjectId;

import cn.jhg.account.entity.MaterialBatch;

public interface MaterialBatchPropertyDao {
	/**
	 * 新增原料批次
	 * @param batch	批次实体
	 * @return		批次id
	 */
	public int addBatchProperty(MaterialBatch batch);
	// 实体包含  t_ibcp_material_batch 表中字段及 mongodb 中属性
	// prop_id 保存属性 id
	// 实际属性保存在 mongodb  mongodb.ibcp.material_batch_property中
	// 物料批次属性格式：
	// {
	//    属性名1:{value属性值, type:属性类型, uom:单位, desc:描述, cate:分类},
	//    属性名2:{value属性值, type:属性类型, uom:单位, desc:描述, cate:分类},
	//    属性名3:{value属性值, type:属性类型, uom:单位, desc:描述, cate:分类},
	//    ...
	// }


	/**
	 * 更新原料批次
	 * @param batch 批次实体
	 * @return	Object
	 */
	public int updateBatchProperty(MaterialBatch batch);
	// 批次id不可更新

	/**
	 * 删除原料批次
	 * @param id	批次id
	 * @return	Object
	 */
	public int deleteBatchProperty(ObjectId id);

	/**
	 * 根据id查询原料批次
	 * @param id	批次id
	 * @return		批次实体
	 */
	public Document queryBatchPropertyById(ObjectId id);

}
